﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СпособыОтраженияПлатежейПогашаемыхВТечениеДня
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"bd1290f9-bced-4219-bafb-b88a133050ed\", \"Представление\":\"ОтражатьКакАванс\"}")]
		ОтражатьКакАванс = 0,//Как аванс
		[EnumMember(Value = "{\"Ссылка\":\"6564c3d2-7305-4b31-b587-6b21a2afbf32\", \"Представление\":\"ОтражатьКакОплату\"}")]
		ОтражатьКакОплату = 1,//Как оплату
	}
	public static partial class СпособыОтраженияПлатежейПогашаемыхВТечениеДня_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ОтражатьКакАванс = new Guid("8ab8fbba-3013-ed50-4219-bcedbd1290f9");//Как аванс
		public static readonly Guid ОтражатьКакОплату = new Guid("216b87b5-afa2-32bf-4b31-73056564c3d2");//Как оплату
		public static СпособыОтраженияПлатежейПогашаемыхВТечениеДня Получить(this СпособыОтраженияПлатежейПогашаемыхВТечениеДня Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыОтраженияПлатежейПогашаемыхВТечениеДня Получить(this СпособыОтраженияПлатежейПогашаемыхВТечениеДня Значение, Guid Ссылка)
		{
			if(Ссылка == ОтражатьКакАванс)
			{
				return СпособыОтраженияПлатежейПогашаемыхВТечениеДня.ОтражатьКакАванс;
			}
			else if(Ссылка == ОтражатьКакОплату)
			{
				return СпособыОтраженияПлатежейПогашаемыхВТечениеДня.ОтражатьКакОплату;
			}
			return СпособыОтраженияПлатежейПогашаемыхВТечениеДня.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыОтраженияПлатежейПогашаемыхВТечениеДня Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыОтраженияПлатежейПогашаемыхВТечениеДня Значение)
		{
			switch (Значение)
			{
				case СпособыОтраженияПлатежейПогашаемыхВТечениеДня.ОтражатьКакАванс: return ОтражатьКакАванс;
				case СпособыОтраженияПлатежейПогашаемыхВТечениеДня.ОтражатьКакОплату: return ОтражатьКакОплату;
			}
			return Guid.Empty;
		}
	}
}